Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Toolset update: VS 2022 17.3 Preview 3, Clang 14 #2861

Merged
merged 27 commits into from
Jul 14, 2022

Conversation

StephanTLavavej
Copy link
Member

@StephanTLavavej StephanTLavavej commented Jul 13, 2022

As a whole, this is best reviewed by ignoring whitespace. I've also arranged it as a series of well-structured commits.

🧰 Toolset update

  • New pool: VS 2022 17.3 Preview 3, Clang 14, July 2022's Patch Tuesday.
  • README.md: Mention 17.3 Preview 3.
  • Require Clang 14 and MSVC 19.33.
    • The internal build now uses MSVC 19.33.

🚀 Clang 14 coroutines

  • Remove workarounds now that Clang 14 supports coroutines.
  • Unskip libcxx tests that are passing with Clang 14 (mostly coroutines).
  • Silence a valid but innocuous Clang warning in P0912R5_coroutine.
  • Work around LLVM-56507 "clang 14.0.5 i686-pc-windows-msvc <coroutine> ICE: failed to perform tail call elimination on a call site marked musttail".

🩹 Workaround removals

  • Remove workaround for VSO-1543660 "Standard Library Header Units: <expected> ICEs with Assertion failed: IsInClassDefn()"
  • Remove workarounds now that Clang 14 supports _MSVC_EXECUTION_CHARACTER_SET.
  • Remove workaround for VSO-522105 "REPORTED: __STDCPP_DEFAULT_NEW_ALIGNMENT__ should have size_t type", resolved on 2018-01-02.
  • Remove workaround now that we've implemented P2231R1 Completing constexpr In optional And variant (P2231 Completing constexpr in optional and variant #2005).
  • Remove workaround for DevCom-1656924 "EDG works wrong with constinit", fixed in 17.2.
  • Remove workaround now that we've implemented P1023R0 constexpr For std::array Comparisons (constexpr for std::array Comparisons #599).
  • Remove not_ranges_destroy() workarounds now that we've implemented ranges::destroy (Minimal changes to support constexpr allocation in MSVC #1313).
  • Remove TRANSITION, VSO-1172852 ("Coroutine not at final suspend point after throwing from unhandled_exception") in <experimental/generator> as this is permanent.
  • Remove workaround for VSO-801237 "Issue calling WideCharToMultiByte from _Wcrtomb with CP_UTF8", as our tests now assume modern OSes.
    • Adjust the locale name to "en-US.UTF-8", for consistency with other tests.
    • If an exception is thrown, the message is no longer a warning - the test will fail.
  • Partially remove workarounds for VSO-934264 "Explicitly-defaulted inherited default constructor is not correctly implicitly constexpr".
    • This bug is still active.
    • Perma-workaround: Mark the lambdas as constexpr, for consistency with other lambdas here.

📄 clang-format 14

  • Update clang-format 14 defaults, no customizations.
  • Reformatting commits:
    • clang-format aligning = default/= delete, no manual changes.
    • clang-format adding spaces to rvalue references to arrays/functions, all good, no manual changes.
    • clang-format removing spurious spaces in requires reference parameters, all good, no manual changes.
    • clang-format removing spurious spaces in an assignment operator, all good, no manual changes.
    • clang-format adjusting indentation, good/neutral, no manual changes.
    • clang-format adjusting indentation, needs manual wrapping to avoid exceeding 120.
    • clang-format removing spaces, weird but not worth adjusting, no manual changes.
    • clang-format adding spaces, weird but not worth adjusting, no manual changes.

StephanTLavavej and others added 25 commits July 12, 2022 14:51
"Standard Library Header Units: <expected> ICEs with Assertion failed: IsInClassDefn()"
Adjust the locale name to "en-US.UTF-8", for consistency with other tests.

If an exception is thrown, the message is no longer a warning - the test will fail.
This bug is still active.

Perma-workaround: Mark the lambdas as constexpr, for consistency with other lambdas here.
@StephanTLavavej StephanTLavavej added infrastructure Related to repository automation test Related to test code labels Jul 13, 2022
@StephanTLavavej StephanTLavavej marked this pull request as ready for review July 13, 2022 09:15
@StephanTLavavej StephanTLavavej requested a review from a team as a code owner July 13, 2022 09:15
Copy link
Contributor

@strega-nil-ms strega-nil-ms left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The way of splitting up commits that you've done has made this extremely easy to review.

@StephanTLavavej StephanTLavavej self-assigned this Jul 13, 2022
@StephanTLavavej
Copy link
Member Author

I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed.

@StephanTLavavej
Copy link
Member Author

@strega-nil-ms I've pushed an additional commit, @CaseyCarter's workaround for #2862 (which happens only in the internal test harness where the STL lives next to the compiler toolset).

@StephanTLavavej StephanTLavavej merged commit 18451dc into microsoft:main Jul 14, 2022
@StephanTLavavej StephanTLavavej deleted the toolset-update-17.3p3 branch July 14, 2022 22:03
fsb4000 pushed a commit to fsb4000/STL that referenced this pull request Aug 13, 2022
@SuperWig SuperWig mentioned this pull request Sep 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infrastructure Related to repository automation test Related to test code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Clang and EDG support for <coroutine>
4 participants